C语言动态分配内存问题(一段内存中存储int,char*等)

现在有:
int a = 100;
char *str = "the string value";
想开辟一段内存。
用两个指针分别存储a和*str,例如:
{
0x00001000 -> 指向a的值
0x00001004 -> 指向*str的值
}

小弟是C语言菜鸟,项目需求急需实现以上功能,请大家帮帮忙!回答的好再追加分数!谢谢!

第1个回答  2012-05-17
首先你这样固定内存地址指向你要存储的值,可能会引起错误,因为其他程序可能正在用此内存空间,windows有比较好的内存管理机制,产生内存冲突时会提示,
XXXX程序错误,,内存0x 010010101010不能为read
等等诸如此类的提示。
你想动态的申请一块内存只需要一个函数自动为你分配就好,你查查函数mem()的算法。
第2个回答  2012-05-24
你的意思是否可以理解为 len+string.
int a = 100;
char *str = "the string value";
char *strNew = new char [len + sizeof(a)];
char *strTmp = str;
*((int*)strTmp) = a;
strTmp += sizeof(a);
memcpy(strTmp, str, len);
delete [] strNew;本回答被提问者采纳
相似回答