阅读:4586回复:10
关于char *长度的问题
char *HeaderBuffer;
char *strtmp; //文件的名字,不包含路径 char *filename; //包含了路径的文件的名字 HeaderBuffer = (char*)malloc(64); strtmp = (char*)malloc(8); filename = (char*)malloc(24); for(int k=0; k<8; k++) { *(strtmp+k) = *(HeaderBuffer+4+k); } strcpy(filename,"c:\\output\\"); strcat(filename,strtmp); 本来我的意图是把headerbuffer里面从第四字节开始的数据拷贝到strtmp中间,然后加上路径之后拷贝到filename上 但是为什么这几句过后,strtmp和filename莫名其妙的在最后多出了一些字节,而且是乱码,使用CreateFile这个函数也不能创建filename这个文件了 |
|
沙发#
发布于:2004-12-18 23:29
for(int k=0; k<8; k++)
{ *(strtmp+k) = *(HeaderBuffer+4+k); } strtmp[8] = '\\0'; strcpy(filename,"c:\\output\\"); strcat(filename,strtmp); terminated with NULL [编辑 - 12/18/04 by arthurtu] |
|
板凳#
发布于:2004-12-19 00:49
会单步调试吗?!
|
|
地板#
发布于:2004-12-19 14:14
字符串的结束符及位置对不对?
|
|
地下室#
发布于:2004-12-27 09:03
用C++中的 string 类型,很方便。
|
|
5楼#
发布于:2004-12-27 12:22
free(buffer),试试看了.还有把char* ={NULL}
|
|
6楼#
发布于:2004-12-29 09:45
strtmp,filename没有结束符.
|
|
7楼#
发布于:2004-12-30 11:25
strtmp = (char*)malloc(9);
strtmp[8] = 0; 还有HeaderBuffer 没有初始化,里面当然是乱码的。 [编辑 - 12/30/04 by sunmoon2k] |
|
8楼#
发布于:2005-02-22 13:10
都应该初始化
|
|
9楼#
发布于:2005-03-01 10:03
初始化分配的空间就可以了
MEMSET |
|
|
10楼#
发布于:2005-03-22 23:15
反斜杠必须用两个!!!\"C:\\\\outpt\\\\\"
|
|