ich arbeite mit xcode auf dem Mac un arbeite mich gerade in die Programmiersprache C ein. In diesem Zug habe ich ein kleines Testprogramm geschrieben. Wenn da den Analyzer drüber laufen lasse, dann meckert er an einer Stelle. Ich verstehe aber nicht, warum.
Hier die betreffenden Zeilen:
Code: Alles auswählen
char *strRepeater(char *c,unsigned int multi) {
    if (!multi) {
        return "";
    }
    
    size_t bufsize = strlen(c) * multi + 1;
    
    char *buffer = malloc(bufsize);
    bzero(buffer, bufsize);
    unsigned int ii;
    for (ii=0; ii<multi; ii++) {
        strcat(buffer, c);
    }
    
    //char *retval = strdup(buffer);
    
    //free(buffer);
    
    return buffer;
}
void printChar(char *c,unsigned int multi) {
    char *repeatedStr = strRepeater(c, multi);
    
    printf("%s",repeatedStr);
    
    free(repeatedStr); // Analyze: Argument to free() is the address of a global variable, which is not memory allocated by malloc()
}
LG
Petra


