结果不应该是a/home/ 吗? 前面三个是什么东西= =
int main(){
char argv[]={"/home/","a"};
char *p=argv[0];
char *filename=argv[1];
puts(filename);puts(p);
char *r=(char)malloc(sizeof(char)*512);
strcat(r,filename);
strcat(r,p);
puts(r);
}
#include <stdio.h>
#include <stdlib.h>
#include <string.h>
int main()
{
char *argv[]={"/home/","a"};
char *p=argv[0];
char *filename=argv[1];
puts(filename);puts(p);
char *r=(char *)malloc(sizeof(char)*512);
memset(r, 0, 512); //这里
strcat(r,filename);
strcat(r,p);
puts(r);
return 0;
}
如果问题得到解决,麻烦点下我回答右边的采纳,谢谢
你r虽然分配空间了但还要把字符串置为空串,才能用,其他地方也有问题
#include<stdio.h>
#include<malloc.h>
#include<string.h>
int main() {
char argv[2][20] = { "/home/","a" };
char *p = argv[0];
char *filename = argv[1];
puts(filename); puts(p);
char *r = (char*)malloc(sizeof(char) * 512);
r[0] = '\0';
strcat(r, filename);
strcat(r, p);
puts(r);
return 0;
}