【发布时间】:2018-01-30 18:21:48
【问题描述】:
我不能 100% 确定我是否正确分配了一个包含 10 个元素的数组
char *str;
str = (int*)malloc(10 * sizeof(int));
任务是分配具有 10 个元素的字符串内存。
我做对了吗,还是因为末尾有“\0”而必须添加“+ 1”。
谢谢!
【问题讨论】:
-
char *str,为什么在哪里?! -
您分配了太多内存,str 是 char 指针而不是 int 指针。所以你只需要分配 11 个字节。可以像这样
str = malloc(11); -
你的“元素”是什么?字符还是整数?下定决心。
-
\0终止符仅适用于字符串。如果需要 10 个字符的字符串,则需要 11 个字节。你的问题中没有提到“字符串”或“字符串”,所以不清楚你想要什么。
标签: c arrays memory-management