C++ 我能';我不能给我的字符指针分配内存
我试图将内存分配给char指针(它应该在以后存储十六进制值) 我一运行这段代码,程序就崩溃了。 (我必须使用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
#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)在使用之前需要声明函数。他说“程序崩溃”意味着什么。我不是心灵感应者。他确实提到了失败的含义。他说“程序崩溃”意味着什么。我不是一个心灵感应者。为笑而成长。为笑而成长。