我得到了這個錯誤信息:通過x的參數1使指針中的整數沒有強制轉換。當我傳遞一個int並且完美工作時,我也以同樣的方式完成了。但是當我用char來做這件事的時候,我得到了這個錯誤。代碼:爲char分配額外的內存,但不是爲已分配的結構中的int分配額外內存?
struct x {
char y;
}
struct x *make(char y)
{
struct x *n = malloc(sizeof(struct x));
n->y = y;
return n;
};
int main(void)
{
make("y");
return 0;
}
我修正了將char改爲char *並使用strcpy的錯誤。所以它完美地工作。但我不明白爲什麼我必須這樣做。我用malloc(sizeof(struct x))爲整個結構分配內存?所以爲什麼我必須爲char分配額外的內存。這似乎很奇怪。我可能有誤解嗎?那麼爲什麼是這種情況。
請縮進代碼 – 2014-10-22 09:31:55