【发布时间】:2015-06-11 15:07:19
【问题描述】:
我有一个更新unsigned char* 的功能,但找不到我的错误所在。我不确定是否需要分配内存,或者我是否在某处指向错误的内存空间。我尝试遵循与here 发布的类似结构,但没有成功使用unsigned char。
到目前为止我的代码:
#include <stdio.h>
void changeArray(unsigned char **arr)
{
unsigned char ptr[3] = {100, 101, 102};
*arr = ptr;
printf("%d\n", **(arr+0)); // This prints out the correct value of 100
}
int main(int argc, const char* argv[])
{
int i = 0;
unsigned char *blah;
unsigned char ptr2[3] = {103, 104, 105};
blah = ptr2;
printf("Blah is: \n");
for (i = 0; i < 3; i++) {
printf("%d,",*(blah+i)); //This prints out 103,104,105
}
changeArray(&blah);
printf("Blah is now: \n");
for (i = 0; i < 3; i++) {
printf("%d,", *(blah +i)); //This prints out 0,0,0
}
return 0;
}
在确定如何正确访问 changeArray() 函数中设置的值的任何帮助将不胜感激。
【问题讨论】:
标签: c arrays function pointers unsigned-char