将数组动态添加到多维数组

Dynamically adding array to multidimensional array

本文关键字:数组 添加 动态      更新时间:2023-10-16

我对将数组作为多维数组的元素进行赋值有问题。下面的代码不能像我一样工作,但如果我把类型从unsigned char改为int,一切都会很好。

unsigned char CH0[4] = { 1, 2, 3, 4 };
unsigned char CH1[4] = { 8, 7, 6, 5 };
unsigned char** mPins;
unsigned char index;
void init(unsigned char size)
{
    mPins = new unsigned char*[size];
    index =0;
}
void setup(unsigned char* array){
    mPins[index] = array;
    index++;
}
main() {
   init(2);
   setup(CH0);
   setup(CH1);
}

您的代码不打印任何内容,因为char应该用于存储字符。带有您正在使用的代码的字符是不可打印的。

此代码有效:

#include <iostream>
unsigned char CH0[4] = { 1, 2, 3, 4 };
unsigned char CH1[4] = { 8, 7, 6, 5 };
unsigned char** mPins;
unsigned char index;
void init(unsigned char size)
{
    mPins = new unsigned char*[size];
    index =0;
}
void setup(unsigned char* array){
    mPins[index] = array;
    index++;
}
int main() {
    init(2);
    setup(CH0);
    setup(CH1);
    for(int i = 0; i < 2 ; ++i) {
        for(int j = 0; j < 4; ++j) {
            std::cout << (int)mPins[i][j] << " ";
        }
        std::cout << std::endl;
    }
}

输出:

1 2 3 4 
8 7 6 5