双指针阵列的功能初始化

问题描述 投票:-1回答:2

我试图测试如下功能:

uint32_t atoi_len(uint8_t **buf, uint8_t len) {
    uint32_t value = 0;

do {
    if ((**buf < '0') || (**buf > '9')) return 0; 
    value *= 10;
    value += *((*buf)++) - '0';
} while (--len);

return value;
}

我已经重新定义uint32_t的和uint8_t int和焦炭,只是让它在我的电脑(代码块)的工作。

我正在试图做的是定义一个2维数组,并通过这此功能作为第一个参数(uint8_t **),但没有任何工程。

uint8_t buffer[10][10] = {"test", "test2", "stuff", "something"};

但我不能叫:

atoi(buffer, len); 

甚至不:

atoi_len(&buffer[0][0], len);
atoi_len(&buffer[0], len);

如何初始化并通过指针访问?如何通过函数指针?

我怎样才能建立一个2维数组,指针传递给这功能?我能够做到这一点很容易在一个维度:

char array[30] = "testof the test";
char* str = array; //or char* str = &array[0];

我想有这种简单的方法来创建一个多维数组和指针分配给它,这样我可以通过指针访问数组,甚至该指针传递给函数。

非常感谢您,S

c arrays function pointers double
2个回答
© www.soinside.com 2019 - 2024. All rights reserved.