我无法为我的char指针分配内存

时间:2014-01-08 00:01:12

标签: c++ cstring

我试图将内存分配给char指针(以后应该存储十六进制值) 一旦我运行此代码,程序就会崩溃。 (我必须使用C-String)

int main() {
    char *c = (char*)malloc(sizeof(unsigned int)*2);
}

我在整个互联网上看到这个例子,但它在我的机器上失败了。为什么呢?

4 个答案:

答案 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 );
}

在任何情况下,您都应该提供一个允许重现该情况的代码。我认为问题不在于此代码,而在于覆盖内存的其他地方。我认为你所展示的代码无关紧要。