#include <stdio.h>
#include <string.h>
#include <stdlib.h>
#define N 10
int main(void)
{
char* target=(char*)malloc(sizeof(char));
for(int i=0;i<N;i++){
memcpy(target+i,"a",sizeof(char));
}
puts(target);
free(target);
return 0;
}
看了这个 讲述 memcpy函数的用法的例子,比较困惑, target是指向 malloc分配一个字符的内存的指针, target+i 岂不是越界 无定义的指针,这样写 难道不是错误的吗? 更改 target+i这块内存上的值 ,不是很危险的吗?