我想要的是創建具有特定lenght一個新的字符串的函數。 這是代碼:問題與字符串創建Ç
char* newString(int lenght){
char* newstring =(char*)((calloc(lenght, sizeof(char))));
newstring[lenght] = '\0';
return newstring;
}
我使用了這種方式:
char* string = newString(10);
我的問題是,當我這樣做:
printf("String lenght %lu \n",strlen(string));
我得到0,但我不知道理解爲什麼。 我是新手與C 感謝您的時間
因爲'calloc'零初始化您的數組,並且您從不填充任何東西。此外,它的拼寫「長度」 –
...你正在使用'T [lenght] =「\ 0''不分,從而調用不確定的行爲超出分配給您的長度。 C中的數組是零基索引的。含義'0 ...(lenght-1)'是索引的允許範圍。 – WhozCraig
't [length] ='\ 0';'是一個超出限制的寫入。 – Xaqq