- 论坛徽章:
- 0
|
本帖最后由 rosettasky 于 2013-09-13 09:47 编辑
楼主你好,能帮我解决一个问题吧,找了好久了。
ARM平台。
以下代码中 ctx->blobs[0] = blob; 结构体blob的值无法正确赋值给ctx->blobs[0]。
结构体作为函数参数时传值的,那应该没有任何问题。更奇怪的是我在asn1_init函数里加了那条printf,就可以神奇的变好。
为什么会这样呢?谢谢。- void asn1_init(asn1_ctx_t * ctx, chunk_t blob, u_int level0, int implicit, u_int cond)
- {
- //printf("in fuc:%s, blob->len:%d\n", __func__, blob.len);
- ctx->blobs[0] = blob;
- ctx->level0 = level0;
- ctx->implicit = implicit;
- ctx->cond = cond;
- memset(ctx->loopAddr, '\0', sizeof(ctx->loopAddr));
- }
- struct chunk {
- unsigned char *ptr;
- unsigned int len;
- };
-
- typedef struct chunk chunk_t;
-
- #define ASN1_MAX_LEVEL 10
-
-
- typedef struct {
- int implicit;
- u_int cond;
- u_int level0;
- u_int loopAddr[ASN1_MAX_LEVEL + 1];
- chunk_t blobs[ASN1_MAX_LEVEL + 2];
- } asn1_ctx_t;
复制代码 |
|