ich werde verrückt finde den Fehler nicht



  • hallo leute,

    ich bitte um Hilfe
    habe das folgende Programm geschrieben, das Daten von einem ADC liest und sie in einem Puffer ablegen soll:
    while (1)
    {
    read( ppiFD, (char *)pData, pDataSize );
    pt1=pData;
    for (pData,i=0;pData<pt1+LINELEN;pData++,i++)
    { printf("pData[%i]=%d\n",i,*pData);}
    //sleep(2)
    }

    zu den Defintionen:
    pData = (UINT16 *)malloc( (size_t)(LINELEN * sizeof(UINT16)));
    typedef unsigned short UINT16;
    UINT16 *pt1;

    (der Puffer hat eine Länge von 1000= LINELEN).

    das Programm läuft richtig nur nach einiger Zeit wird meine Anwendung immer unterbrochen .

    ich habe die for-schleife durch :
    for(i = 0; i < 1000; i++)
    {
    printf("pData[%i]: %d \n", i, (pData + isizeof(unsigned short)));
    }

    ersetzt , dann konnte mein Programmm problemlos laufen
    darum gehe ich davon aus, dass etwas mit der ersten for schleife nicht stimmt
    nur leider sehe ich nichts falsches daran .

    vielen dank



  • ich finde du machst das viel zu kompliziert, aber ein

    pData = pt1;
    

    hinter der 'for' schleife könnte helfen...



  • Bitte die [cpp]-Tags verwenden und den Code wenigstens ein bißchen formatieren.



  • myouness27 schrieb:

    hallo leute,

    while (1)
      {
        read( ppiFD, (char *)pData, pDataSize ); //fread(....)
        pt1=pData;
        for (pData,i=0;pData<pt1+LINELEN;pData++,i++)
            { printf("pData[%i]=%d\n",i,*pData);} //{} kannst du auch weglassen 
       //sleep(2)
     } 
    
    zu den Defintionen:
     pData = (UINT16 *)malloc( (size_t)(LINELEN * sizeof(UINT16)));
     typedef unsigned short	UINT16;
     UINT16 *pt1;
    
    ich habe die for-schleife durch :
    for(i = 0; i < 1000; i++)
    { //klammern kannste knicken, macht nur den code dick und unschön wenn da was kurzes drinsteht und zwei klammern folgen
    printf("pData[%i]: %d \n", i, *(pData + i*sizeof(unsigned short))); // benutz doch UINT16 wenn du es schon typedef machst
    }
    

Anmelden zum Antworten