我写了这段代码:
char *del;
char *str1;
int d = 0, i = 0, s = 0;
//char str[] = new char[29];
printf("enter the nember of delim elements: ");
scanf("%d", &d);
prinf("\nenter number of str elements: ");
scanf("%d", &s);
/* Initial memory allocation */
del = (char *) malloc(d * sizeof(char));
str1 = (char *) malloc(s * sizeof(char));
for(i = 0; i < d; i++) {
scanf("%s", del+i);
}
现在我想知道如何将*del
复制到del []
?
因为之后我需要将del []
发送到函数
谢谢:)
答案 0 :(得分:-1)
没有必要进行任何复制。这样:
void func(char d[]) { ... }
与此相同:
void func(char *d) { ... }
传递给函数时,数组不会完整复制。实际发生的是传递一个指向数组中第一个元素的指针。
所以如果你有这个:
char *d;
或者这个:
char d[100];
两者都可以传递给具有上述两个定义之一的函数。