Versions Compared

Key

  • This line was added.
  • This line was removed.
  • Formatting was changed.

...

Code Block
#define CONDITION_CHECK  42
void  func1 (int arg) { int i = arg; }
void  func2 (void) {
    int j; 
    
    if (j == CONDITION_CHECK) printf("Condition passed!!\n");
    else printf("ERROR: Condition failed\n");
}
int main(int argc, char **argv) {
    func1(atoi(argv[1]));
    func2();
}

...

Code Block
#define BUF_SIZE 150
void runit(void) {   
    char buf[50];
    char *ptr; 

    memset(buf,0,50);
    strcpy(buf,ptr);
}
void logit(char *str, int size) {
    char buffer[BUF_SIZE];
    int i;
    for (i=0; i < BUF_SIZE; ++i) buffer[i] = '\0';

    strncpy(buffer, str, size);    
    printf("The message: %s\nhas been logged\n",buffer);
}
int main(int argc, char *argv[]) {
    char buf[BUF_SIZE];
    int i;
    for (i=0; i < BUF_SIZE; ++i) buf[i] = '\0';

    strncpy(buf, argv[1], BUF_SIZE-1);    
    logit(buf,strlen(buf));
    runit();
}

...

Code Block
#define BUF_SIZE 150

void runit(void) {   
    char buf[50];
    char *ptr = 0; /* initialize ptr to 0 */

    memset(buf,0,50);
    strcpy(buf,ptr);
}
void logit(char *str, int size) {
    char buffer[BUF_SIZE];
    int i;
    for (i=0; i < BUF_SIZE; ++i) buffer[i] = '\0';

    strncpy(buffer, str, size);    
    printf("The message: %s\nhas been logged\n",buffer);
}
int main(int argc, char *argv[]) {
    char buf[BUF_SIZE];
    int i;
    for (i=0; i < BUF_SIZE; ++i) buf[i] = '\0';

    strncpy(buf, argv[1], BUF_SIZE-1);    
    logit(buf,strlen(buf));
    runit();
}

References

ISO/IEC 9899 Section 6.7.8 Initialization