我试图从数组中进行字符串搜索。

看这个....

int   TotalBadStrings = 3;
 // START INFINITE SCANNING!
   while(true)
   {

   for (int BadStringsCount = 0; BadStringsCount < TotalBadStrings; BadStringsCount++)
       {

        char* StringsToSearch[] = {"badstring1", "badstring2"};

  char *lpData = (CHAR*)GlobalAlloc(GMEM_FIXED, MAX_READ),
       lpOrig[]     = StringsToSearch[BadStringsCount];


// HERE I MAKE A SCAN IN MEMORY USING lpOrig

   }


当我尝试编译时我得到这个

[Error] initializer fails to determine size of 'lpOrig'

214 54 [Error] array must be initialized with a brace-enclosed initializer


问题是当我尝试从数组StringsToSearch中获取字符串之一时

我正在将DEV C ++ 5.6.1与GCC 4.8.1 32位一起使用

任何想法?先感谢您!

最佳答案

如果尚未完成,我建议在lpOrig的开头添加char *来定义它。

char *lpOrig[]     = StringsToSearch[BadStringsCount];


我还看到如果BadStringsCount太大,这可能会在运行分段时导致分段错误。如果我正确理解您的代码,则BadStringsCount的唯一有效值应为0或1,因为您分配了2个要检查的错误字符串,并且数组在C ++中被索引为0(例如,数组的第一个元素位于位置0) 。您可能需要对第一行进行以下更改以解决此问题:

int   TotalBadStrings = 2;

10-05 23:52