国产av日韩一区二区三区精品,成人性爱视频在线观看,国产,欧美,日韩,一区,www.成色av久久成人,2222eeee成人天堂

objective-c - Avez-vous rencontré un problème d'échec d'affectation de structure lors de l'utilisation du langage C?
天蓬老師
天蓬老師 2017-05-31 10:36:42
0
1
1027

J'ai une classe A :
défini une structure

typedef struct
{
    int sockfd;
    on_av_frame_cb av_frame_cb;
    on_av_frame_cb rtp_cb;
    on_error_cb error_cb;
    uint8_t *p_buf;
    uint8_t *v_buf;
    uint8_t *a_buf;
    int  rtp_flag;
    
}udp_client_t;

Ensuite je l'appelle en classe B :

static udp_client_t client;
int jldv_create_client(int src_port,int port ,const char *dst_ip){
    
    
    udp_client_t *udpClient = &client;
    
    assert(udpClient != NULL);
    const char *c_ip = dst_ip;
    
    memset(udpClient, 0, sizeof(udp_client_t));
    
    int ret = create_client(src_port, port, c_ip, &udpClient);
    
    if (ret != 0) {
        
        goto err_output;
    }
    
    udpClient->av_frame_cb = (on_av_frame_cb )onVideoFrame;
    udpClient->error_cb = on_error;
    
    
    
    if (rtp_create(&udpClient) < 0) { ///問(wèn)題所在之處
        goto err_output;
    }
    
    printf("rtp_client:%d \n",udpClient->rtp_flag);
    return 0;
    
err_output:
    destroy_client(udpClient);
    return -1;
    
}

Dans le problème ci-dessus, j'ai utilisé la méthode de classe C :

int rtp_create(udp_client_t **data)
{
    logi("%s", __func__);
    
    udp_client_t *udpClient = *data;
    if(udpClient)
    {

        udpClient->rtp_flag = 1;
       
        
        memset(&rtp_cxt, 0, sizeof(rtp_context_t));
        int ret = init_server();
        if (ret < 0)
        {
            return -1;
        }
        rtp_cxt.nalu = alloc_nalu(MAX_FRAME_SIZE);//為結(jié)構(gòu)體nalu_t及其成員buf分配空間。返回值為指向nalu_t存儲(chǔ)空間的指針
        if (!rtp_cxt.nalu)
        {
            loge("alloc nalu failed");
            return -2;
        }
    }
    else
    {
        loge("%s: data is null", __func__);
        return -3;
    }
    
    printf("udpClient after==>%d \n",udpClient->rtp_flag);
    return 0;
}

Cependant, le résultat imprimé est?:

udpClient after==>1 
rtp_client:0 

Pourquoi est-ce ?
Est-ce que j'utilise le mauvais?? Demander de l'aide aux dieux. .

天蓬老師
天蓬老師

歡迎選擇我的課程,讓我們一起見(jiàn)證您的進(jìn)步~~

répondre à tous(1)
漂亮男人

Il est tout à fait possible que la logique ressemble à ceci :

udp_client_t *udpClient = *data;
if (udpClient)
{
    udpClient->rtp_flag = 1;
    int ret = init_server();
    if (ret < 0)
    {
        // 這里沒(méi)執(zhí)行
    }
    rtp_cxt.nalu = alloc_nalu(MAX_FRAME_SIZE);
    if (!rtp_cxt.nalu)
    {
        // 這里沒(méi)執(zhí)行
    }
}
else
{
    // 這里沒(méi)執(zhí)行
}
// 此時(shí) udpClient->rtp_flag => 1 且返回值為 0
return 0;

Donc sorties 1 et 0, y a-t-il un problème ?

Derniers téléchargements
Plus>
effets Web
Code source du site Web
Matériel du site Web
Modèle frontal