我试图将内存分配给char指针(以后应该存储十六进制值) 一旦我运行此代码,程序就会崩溃。 (我必须使用C-String)
int main() {
char *c = (char*)malloc(sizeof(unsigned int)*2);
}
我在整个互联网上看到这个例子,但它在我的机器上失败了。为什么呢?
答案 0 :(得分:5)
好的解决方案就像这个问题一样容易...... 我没有看到.exe文件无法生成,因此我在1小时前运行了一个旧的.exe文件......
答案 1 :(得分:1)
Malloc是C,你正在尝试做C ++。
我会这样做:
char *c;
c=new char[Max_Size];
显然Max_Size将是您想要的数组的大小。
答案 2 :(得分:0)
试试这个:
#include <stdlib.h> // for malloc
#include <stdio.h>
int main() {
char *c = (char*)malloc(sizeof(unsigned int)*2); //It's work
printf("%d",sizeof(c));
return 0; // required
}
答案 3 :(得分:0)
你没有说你的意思说它失败了。无论如何,您必须包含标题<stdlib.h>
如果程序是用C语言编写的,或者<cstdlib>
如果程序是用C ++编写的。
C代码:
#include <stdlib.h>
int main() {
char *c = (char*)malloc(sizeof(unsigned int)*2);
free( c );
}
在任何情况下,您都应该提供一个允许重现该情况的代码。我认为问题不在于此代码,而在于覆盖内存的其他地方。我认为你所展示的代码无关紧要。