【发布时间】:2013-07-09 09:00:08
【问题描述】:
#include<stdio.h>
void int_copy(int* ptrA,int* ptrB,int nbr){
//int* temp = ptrB;
while(nbr != 0){
*ptrB++ = *ptrA++;
nbr--;
}
*ptrB = -1;
//ptrB = temp;
}
int main(){
int stringa[40] = {100,101,102,103,104,105,106,107,108,109,110,-1};
int stringb[40] = {0};
int *ptr;
int *ptr1;
int len = 0;
ptr = stringa;
ptr1 = stringb;
while(*ptr != -1){
*ptr++;len++;
}
printf("\n len : %d \n",len);
int_copy(stringa,stringb,len);
while(*ptr1 != -1){
printf("%d\t",*ptr1);
*ptr1++;
}
return 0;
}
我正在尝试将一个整数数组复制到另一个整数数组的示例程序。有没有其他更有效的方法。
已编辑:
void int_copy(int* ptrA,int* ptrB,int nbr){
memcpy(ptrA,ptrB,(sizeof(int)*nbr));
}
【问题讨论】:
-
@Dayalrai:那不是复制
-
@KarolyHorvath 哦,是的,你是对的。我没有从那个角度思考。删除我的误导性评论。
-
函数 int_copy temp 没有初始化,所以最后一行可能会报错。
-
其实最后一行是删减。在此函数结束时,分配给本地“ptr”实际上什么都不做。然后也可以删除第一行。
标签: c