我实现了一个通用的快速排序,现在我想从命令行接受数组。以下是一个应该将字符指针从数组 argv 复制到 base 的函数。我遇到分段错误。当我传递两个整数的地址时,副本工作正常。
#include<stdio.h>
void copy(void *src, void *dest, int size)
{
char *s, *d;
int i;
s = src;
d = dest;
for(i = 0; i < size; i++)
d[i] = s[i];
}
int main(int argc, char *argv[])
{
void *base;
int i = 10;
int j = 20;
printf("%d, %d\n", i, j);
copy(&i, &j, sizeof(int));
printf("%d, %d\n", i, j);
copy(argv, base, sizeof(char *));
return 0;
}
输出
10, 20
10, 10
Segmentation fault (core dumped)