簡體   English   中英

字符點內存分配到 C++ 字符串的引用地址?

[英]Char Point Memory Allocation to reference address of C++ String?

我想轉換一個整數數組 2, 3, 4, 8 5, 7, 9, 12 1, 0, 6, 10

到一個字符串,該矩陣的條目按順時針順序附加“2, 3, 4, 8, 12, 10, 6, 0, 1, 5, 7, 9”。

我必須按char * OutBuffer保留int * Matrixchar * OutBuffer的聲明

int main()
{
    int matrixArray[rowCount][columnCount] =
    {   {2, 3, 4, 8},
        {5, 7, 9, 12},
        {1, 0, 6, 10}};

    int * matrix;
    string prebuffer;
    char  * outBuffer;

    outBuffer = new (nothrow) char[24];
    matrix = &matrixArray[0][0];

    BuildStringFromMatrix(matrix, rowCount, columnCount, outBuffer);
}

我在將所有指針傳入之前聲明並尋址它們。但是,我不確定是否要為outBuffer分配內存以正確存儲outBuffer的字符?

void BuildStringFromMatrix(int* Matrix, int NumRows, int NumColumns, char * OutBuffer)
    {
        string prebuffer;
        bool stringLeft = true;
        int i = 0;

        while (stringLeft)
        {
            int clockwiseDir[12] = { 1,1,1,4,1,1,0,4,-4,-1,-1,-1 };

            prebuffer = to_string(Matrix[i]) + ", ";
            OutBuffer = new char [prebuffer.length() + 1];
            cout << prebuffer;
            i += clockwiseDir[i];

            if (i == 6)
            {
                prebuffer = to_string(Matrix[i]) + " ";
                cout << prebuffer;
                stringLeft = false;
            }
        }
    }

**當我不實現OutBuffer我可以按順時針格式訪問和打印矩陣

但是我將如何使用 OutBuffer 來引用和打印預緩沖內容? 我需要數字來在 ASCII 表上顯示不可打印的符號

提前致謝 :) **

首先,在BuildStringFromMatrix函數下的循環中,您沒有在任何地方使用 i 值。 其次, matrix = matrixArray 應該沒問題。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM