meiyxq
驱动牛犊
驱动牛犊
  • 注册日期2010-04-22
  • 最后登录2012-08-17
  • 粉丝0
  • 关注0
  • 积分38分
  • 威望251点
  • 贡献值0点
  • 好评度0点
  • 原创分0分
  • 专家分0分
阅读:3783回复:3

驱动中不能 用二维数组吗?请大侠指教!

楼主#
更多 发布于:2010-05-20 12:29
代码如下:
  当在while循环中有 pstr[index][0] = (char*)ExAllocatePool(NonPagedPool() 类似时 ,就会出现如下错误
    error LNK2019: unresolved external symbol __chkstk referenced in function "void __stdcall
    如果把while注释掉!整个程序没有问题!请问为什么?我试过PAGED_LOOKASIDE_LIST 也同样存在这样的问题..
  
如果我把char* ps = (char*)ExAllocatePool(NonPagedPool,这样也行!但是就是给pstr[index][0]这样的二维数组!




程序本身一个字符串辨识的作用!
void SplistStr(char* pFileBuffer,int nFileLen)
{
       char* pstr[100[10];
    char* pMark    = "#";
    char* ptmpMark = ",";

    char* pTemp    = NULL;
    char* ptmp     = NULL;
    int   index    = 0;
    int  nSpace    = 0;
    int  nLen      = 0;
    int  nsubLen   = 0;

    if(pFileBuffer == NULL) return;
    for (int i=0;i<MAXROW;i++)
    {
        for (int j= 0;j<MAXCOL;j++)
        {
            pstr[j] = NULL;
        }
    }            
    while ((pTemp = strstr(pFileBuffer + nSpace,pMark)) != NULL)
    {
        int  nTemp     = 0;
        int nsubIndex  = 1;
        nLen           = pTemp - pFileBuffer - nSpace ; // 当前的获取到的字符串长度
        pstr[index][0] = (char*)ExAllocatePool(NonPagedPool,nLen +1);;
        
        memset(pstr[index][0],0,nLen +1);
        memcpy(pstr[index][0],pFileBuffer + nSpace,nLen);

        nSpace = nSpace + nLen + strlen(pMark);
        if(nSpace >= nFileLen)     break;
        index++;
    }
}
itsayr
驱动牛犊
驱动牛犊
  • 注册日期2009-06-09
  • 最后登录2010-12-10
  • 粉丝0
  • 关注0
  • 积分10分
  • 威望111点
  • 贡献值0点
  • 好评度0点
  • 原创分0分
  • 专家分0分
沙发#
发布于:2010-12-01 01:54
Re:驅動中不能 用二維數組嗎?請大俠指教!
You defined this char* pstr[100][10] , and then you'd like to access pstr[index][0], are you kidding with me!!! take care for your pointer variable.
gao0717
禁止发言
禁止发言
  • 注册日期2007-12-13
  • 最后登录2018-09-25
  • 粉丝1
  • 关注0
  • 积分82434分
  • 威望412811点
  • 贡献值0点
  • 好评度0点
  • 原创分0分
  • 专家分0分
板凳#
发布于:2010-12-31 16:46
用户被禁言,该主题自动屏蔽!
sunsea
驱动牛犊
驱动牛犊
  • 注册日期2013-03-09
  • 最后登录2013-06-01
  • 粉丝0
  • 关注0
  • 积分39分
  • 威望231点
  • 贡献值0点
  • 好评度0点
  • 原创分0分
  • 专家分2分
地板#
发布于:2013-04-04 20:16
你的二维数组是char*的
换成等效指针就是char ***
你可以试试*(*(pstr+index)+0) = (char*)ExAllocatePool
 
还有
你的声明少了个]
 
char* pstr[100[10];
应是char* pstr[100][10];
游客

返回顶部