我想用我有一點C代碼找到問題。調試器說,當我嘗試從指針釋放MEM發生錯誤:使用免費()在分割錯誤
int main(int argc, char *argv[]){
char *desc = malloc(30 * sizeof(char));
if(desc == NULL)
{
fprintf(stderr, "Error - cannot allocate memory\n");
}
desc = "Debug this program.";
printf("Description: %s\n", desc);
free(desc);//break point here
int cpid = fork();
....
您試圖釋放一個文字字符串的地址,這是非法的。 – LPs
此外,從字符串文字分配分配的指針幾乎總是錯誤的。如果您想將文字複製到'desc'中,請使用'strcpy'。 – Actorclavilis
請注意,sizeof(char)總是1.它是對象大小的度量單位。 –