字符指针数组问题
#include <stdio.h>
#include <stdlib.h>
#include <string.h>
void main()
{
int i;
char *Filepath = "c:\\windows\\ ";
char *tempuser[3];
char *user[3] = { "user1 ", "user2 ", "user3 "};
for(i=0;i <3;i++)
{
tempuser[i] = (char *)malloc(10 * sizeof(char));
tempuser[i] = strcat(Filepath,user[i]);
printf( "%s\n ",tempuser[i]);
}
}
运行后,没有输出,各位帮忙看看问题出在哪里啊?
[解决办法]
10*sizeof(char)怎么够存储???
c:\windows\user1长度至少也要16+1(结束符号)
改成17*sizeof(char)
此外filepath是指向静态区的指针,不能写内容
应该是
#include <stdio.h>
#include <stdlib.h>
#include <string.h>
#include <conio.h>
int main()
{
int i;
char *Filepath = "c:\\windows\\ ";
char *tempuser[3];
char *user[3] = { "user1 ", "user2 ", "user3 "};
for(i=0;i <3;i++)
{
tempuser[i] = (char *)malloc(17 * sizeof(char));
strcpy(tempuser[i],Filepath);//首先赋予filepath
strcat(tempuser[i],user[i]);//之后连接
printf( "%s\n ",tempuser[i]);
free(tempuser[i]);
}
getch();
return 0;
}