我在這裏有一些奇怪的輸出。你能解釋我爲什麼以及如何解決它?C字符串malloc(輸出)
int inp_str(char * string, char ** pointers[])
{
char * tmp[stringsCount];
if (strlen(string) > maxlen)
return (-1);
else {
tmp[count] = malloc(sizeof(char) * strlen(string));
strcpy(tmp[count], string);
pointers[count] = &tmp[count];
count++;
}
return count;
}
int main(){
//char * strings[stringsCount];
char ** pointers[stringsCount];
inp_str("sdasya", pointers);
inp_str("dasd", pointers);
inp_str("qwe", pointers);
inp_str("dasd", pointers);
//sort(pointers, count);
printf("%s", *pointers[0]);
printf("\n%s", *pointers[1]);
printf("\n%s", *pointers[2]);
printf("\n%s", *pointers[3]);
}
這裏是輸出:
sdasya
��uNH��H�l$ H�\$L�d$(L�l$0H��8�f.�
qwe
�bs7
PS。 stringsCount是常量; count = 0
歡迎來到Stack Overflow。請儘快閱讀[關於]頁面。您應該瞭解如何創建SSCCE([簡短,獨立,正確的示例](http://sscce.org/))。你的代碼與SSCE相當接近,但它看起來只需要四行代碼即可完成:兩條'#include'行和'stringsCount'和'count'的定義。包括那些將會節省你編寫最後一條PS線。 –