在c中从char *转换为char []

时间:2015-11-14 20:26:00

标签: c

我写了这段代码:

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 []发送到函数

谢谢:)

1 个答案:

答案 0 :(得分:-1)

没有必要进行任何复制。这样:

void func(char d[]) { ... }

与此相同:

void func(char *d) { ... }

传递给函数时,数组不会完整复制。实际发生的是传递一个指向数组中第一个元素的指针。

所以如果你有这个:

char *d;

或者这个:

char d[100];

两者都可以传递给具有上述两个定义之一的函数。