int main() //第一种方法,遍历数组发(让一个数组在开辟好的空间进行循环赋值)
{
int nums[] = { 1,2,3 };
int sz = sizeof(nums) / sizeof(nums[0]); //计算出一个数组的多少字节
int i = 0;
int j = 0;
int* p = (int*)malloc(sizeof(nums)*(2*sz)); //开辟一出空间,为两个数组的大小
if (p != NULL)
{
for (i = 0; i < sz; i++)
{
*(p + i) = nums[i]; //一起赋值
*(p + sz + i) = nums[i];
}
}
for (i = 0; i < (2 * sz); i++)
{
printf("%d ", *(p + i));
}
free(p);
p = NULL;
return 0;
}
int main() //第二种方法 用malloc开辟溢出空间(一个数组的空间) ,然后再用realloc开辟一处空间(相当于两个数组大小空间)
{
int nums[] = {1,2,3};
int sz = sizeof(nums) / sizeof(nums[0]);
int i = 0;
int j = 0;
int* p = (int*)malloc(sizeof(nums));
if (p != NULL)
{
for (i = 0; i < sz; i++)
{
*(p + i) = nums[i];
}
}
int* prt = (int*)realloc(p,2*sizeof(nums));
if (prt != NULL)
{
for (i = sz; i < (2*sz); i++)
{
*(prt + i) = nums[i-sz];
}
}
for (i = 0; i < (2*sz); i++)
{
printf("%d " ,*(prt+i));
}
free(prt);
prt = NULL;
return 0;
}