我在指针中获得了两个全局变量。我需要做的就是将字符值分配给一些检查边界的局部变量。
// global variable
char *min_ptr, *max_ptr ;
void markchar( char *x, int size, char marked)
{
// for every byte of x to have the value marked
int num_arr_elem = size/sizeof(char);
for (int i=0; i<num_arr_elem; i++) {
x[i] = marked;
}
}
我分配如下:它正确吗?我现在很困惑。如何使用全局最小和最大指针检查边界?如何将任何内容分配给未初始化的结构、联合和数组?默认情况下它们都是空值和零?但似乎我在执行以下操作时不断出错。
我需要这样做以便稍后查看堆栈的哪一部分在 max 和 min 指针之间没有分配任何值......所以我需要以某种方式检查下面的一些值是否在这些边界之间,但它们甚至没有初始化所以我该如何检查任何事物?
这个对吗?
int i ;
markchar( (char *) &i, sizeof(i), 0xa1 )
这个对吗?
struct sss {
char* a ;
char b[20] ;
float c ;
} s;
markchar( (char *) &s, sizeof(s), 0xb1 )
这个对吗?
union ccc {
float a ;
char b ;
int c ;
} u ;
markchar( (char *) &u, sizeof(u), 0xc1 )
这个对吗?
char aa[50] ;
markchar( (char *) &aa, sizeof(aa), 0xd1 )
我将不胜感激。我现在很迷茫。花了这么多时间试图弄清楚这一点。