Вы должны создать что-то, что на самом деле компилирует и воспроизводит проблему. Это не только поможет людям помочь вам, но при этом вы вполне можете сами найти проблему.
В вашем фрагменте кода мы понятия не имеем:
- Что такое rc, как его значение установлено или как его значение когда-либо изменится и, следовательно, завершит цикл
- Каково начальное значение r
- Каково фактическое содержимое myData
Я создал этот код на основе того, что вы опубликовали, и он выдает одинаковый вывод из обоих циклов. Так что либо я что-то пропустил в том, что вы опубликовали, либо вы пропустили что-то важное.
int main( int argc, char** argv ) {
#define STRING char *
STRING dummy = "0123456789ABCDEFGHIJKLMNOPQRSTUVWXYZ!@#$%^&*()";
STRING *tableData[500]={0};
STRING myData[500][2];
int r=0;
while(r < 20){
myData[r][0] = dummy+2*r;
myData[r][1] = dummy+r;
tableData[r] = myData[r];
printf(*tableData[r]);
printf("\n");
r=r+1;
}//end while
int a;
for (a=0; a<r; a++){
printf(*tableData[a]);
printf("\n");
}
}