簡體   English   中英

C錯誤“下標值既不是數組也不是指針”

[英]C error “subscripted value is neither array nor pointer”

我在下面的代碼段中遇到了一些問題。

#include "stm32f0xx_tim.h"
#include "stm32f0xx_adc.h"
#include "stm32f0xx_rcc.h"
#include "stm32f0xx_conf.h"
#include "adc.h"

void calcSensor(float voltage1, float voltage2, int X, int Y)
{
    float Iload = 0;
    float Vsensor = 0;
    float Rsensor = 0;
    float Vdrop = voltage1 - voltage2;
    uint32_t resistance = 0;
    Iload = Vdrop/Rload;
    Vsensor = Vin - Iload*Rmux - Iload*Rdemux-Vdrop;
    resistance = Vsensor/Iload;
    Rsensor[1][5] = resistance;
    Y++;
    if (Y == 22)
    {
        Y = 0;
        X++;
        if (X == 44)
        {
            X = 0;
        }

    }
}
void initRArray(void)
{
    int x;
    int y;
    for(x = 0; x < 44; x++) 
    { 
        for(y = 0; y < 22; y++)
        {
            Rsensor[x][y] = 0;
        }   
    }
}

錯誤來了:

Rsensor[1][5] = resistance;

錯誤與標題相同:

下標值既不是數組也不是指針

我最初將X和Y用作索引,但是切換到0和5以為可能是個問題。 那沒有解決。 此外,我還有intRarray函數,該函數將所有值設置為0。此數組可以正常編譯,並且使用的是有問題的同一數組。

下面是頭文件中數組的聲明。

unsigned long int Rsensor[44][22];

您有一個局部變量float Rsensor = 0; 它遮蓋了全局數組。 重命名兩者之一。

您在程序中具有以下聲明

float Rsensor = 0;

這使Rsensor成為float變量,而不是數組。

暫無
暫無

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

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