Warning: file_get_contents(/data/phpspider/zhask/data//catemap/6/cplusplus/129.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C++ 我能';我不能给我的字符指针分配内存_C++_Cstring - Fatal编程技术网

C++ 我能';我不能给我的字符指针分配内存

C++ 我能';我不能给我的字符指针分配内存,c++,cstring,C++,Cstring,我试图将内存分配给char指针(它应该在以后存储十六进制值) 我一运行这段代码,程序就崩溃了。 (我必须使用C字串) 我在互联网上看到过这样的例子,但在我的机器上失败了。为什么?试试这个: #include <stdlib.h> // for malloc #include <stdio.h> int main() { char *c = (char*)malloc(sizeof(unsigned int)*2); //It's work printf

我试图将内存分配给char指针(它应该在以后存储十六进制值) 我一运行这段代码,程序就崩溃了。 (我必须使用C字串)

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

试试这个:

#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
}
#包含//用于malloc
#包括
int main(){
char*c=(char*)malloc(sizeof(unsigned int)*2);//这是工作
printf(“%d”,sizeof(c));
返回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
}
#包含//用于malloc
#包括
int main(){
char*c=(char*)malloc(sizeof(unsigned int)*2);//这是工作
printf(“%d”,sizeof(c));
返回0;//必需
}

< Malloc >是C,你正在尝试做C++。 我只想这样做:

char *c;
c=new char[Max_Size];

显然,Max大小是你想要的数组的大小。

< P> Malloc是C,你正在尝试C++。< /P> 我只想这样做:

char *c;
c=new char[Max_Size];

很明显,Max_Size就是您想要的数组的大小。

您没有说什么意思,说它失败了。在任何情况下,都必须包含标题

如果程序是用C或<代码> <代码>编写的,如果程序是用C++编写的。 C代码:

#include <stdlib.h>

int main() {
    char *c = (char*)malloc(sizeof(unsigned int)*2);
    free( c );
}
#包括
int main(){
char*c=(char*)malloc(sizeof(unsigned int)*2);
免费(c);
}

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

你没有说出你的意思,说它失败了。在任何情况下,都必须包含标题

如果程序是用C或<代码> <代码>编写的,如果程序是用C++编写的。 C代码:

#include <stdlib.h>

int main() {
    char *c = (char*)malloc(sizeof(unsigned int)*2);
    free( c );
}
#包括
int main(){
char*c=(char*)malloc(sizeof(unsigned int)*2);
免费(c);
}

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

好的,解决方案和问题应该的一样简单。。。
我没有发现.exe文件无法生成,因此我运行的是一个1小时前编译的旧.exe文件…

好的,解决方案很简单,就像问题应该解决的那样。。。

我没有看到.exe文件不能生成,因此我运行了一个小时前编译的.exe文件……/p>为什么MALLC(C是)而不是新的(C++),它看起来是什么样的?它是如何被破解的?这是一个编译器错误?你的意思是告诉我们上面的代码是你的主要功能的唯一内容?它只是一个测试程序来确保这是个确切的问题。为什么Malc(C)而不是新的(C++)会是什么样子?它是怎么被打乱的?这是一个编译器错误?您的意思是告诉我们上面的代码是主函数的唯一内容?这只是一个测试程序,以确保这是确切的问题。
返回0 STDLIB。h /代码>,那么它就不会编译,因为C++(和C99)需要在使用之前声明函数。<代码>返回0;<在理论上,如果你不包括<代码> STDLIB .H/COD>,那么它就不会编译,因为C++(和C99)在使用之前需要声明函数。他说“程序崩溃”意味着什么。我不是心灵感应者。他确实提到了失败的含义。他说“程序崩溃”意味着什么。我不是一个心灵感应者。为笑而成长。为笑而成长。