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 }