Array / Function Scoping issue

Hi All,
Can someone confirm this please?
If I declare an array in a function, is that array only available / accessible in the scope of that function?  That is, does it have a local scope to the function only?
I ask because I am unable to access values in the array outside of the defining function.
As an example:
function myFunction () {
     //other code e.g. specifying length of array, etc
for (i=0; i<myArray.length; i++) {
     myArray[i] = currentValue + i;
     //other code
trace (myArray); // undefined is showing up here.
Do I have to do something like this inside the function to make the values available to the root and other functions?
_root.myArrayGlobal = myArray; // inside the function
trace (myArrayGlobal); //this then appears to work outside of the function
I just want to confirm to ensure the only issue I'm having is a scoping one.
If so is this the “best practice” way to do it?
Thank you
Best Regards
Chris

Yes, declaring a variable within a function give it scope only within that function. To remedy your problem just declare it outside the function, not inside (and since you don't show actually declaring it, just in case, always declare using "var").
var myArray = new Array();
function myFunction () {
     //other code e.g. specifying length of array, etc
for (i=0; i<myArray.length; i++) {
     myArray[i] = currentValue + i;
     //other code
trace (myArray); // undefined is showing up here.

Similar Messages

  • Powershell Function Scoping Issue

    Hopefully this is a simple question for the pros out there. Consider a script like this:
    function Do-Something {
    Helper1
    function Helper1 {
    # some stuff
    I then dot-source this script in a psm1 file which is imported into my local session. The module only exports Do-Something as I would like Helper1 to be private. However, when I run Do-Something then Helper1 is not found. How can I create a helper that is
    not exported to the global scope but is still available to the exported function? Should I just put Helper1 inside Do-Something or is there a better way?
    Thanks!

    OK.  So you have a .PSM1 file that you're loading with Import-Module, and that PSM1 file dot-sources some number of other PS1 files?  That should be working fine; I use that same technique in many modules.  Here's an example of that on my
    computer:
    #### test.psm1:
    function Do-Something {
    Helper1
    . $PSScriptRoot\Helper.ps1
    Export-ModuleMember -Function Do-Something
    #### Helper.ps1:
    function Helper1
    Write-Host 'I am the helper'
    #### At the console:
    PS C:\source\Temp> Import-Module .\test.psm1
    WARNING: The names of some imported commands from the module 'test' include unapproved verbs that might make them less discoverable. To find the commands with unapproved
    verbs, run the Import-Module command again with the Verbose parameter. For a list of approved verbs, type Get-Verb.
    PS C:\source\Temp> Get-Command -Module Test
    CommandType Name ModuleName
    Function Do-Something test
    PS C:\source\Temp> Do-Something
    I am the helper
    PS C:\source\Temp>

  • Pl-Sql Oracle Function Concurrency Issue

    Hi All,
    Issue - pl-sql Oracle Function performance issue, when muliple users are accessing the function
    Detail -
    Oracle 11g / Linux Server
    I have developed a pl-sql oracle function to retrieve information from 3 tables, output as a particluar type array.
    Single request is getting processed within 2.2 seconds, but when multiple request are sent concurrently <tested with 50>, time taken for each output is different.
    BreakUp of Response times:-
    8 messages took - 2.2 sec
    +8 messages took - 4.4 sec
    ++8 messages took - 6.6 sec....etc
    I'm looking for any DB tunning parameter, which will help to resolve this issue.
    My only aim is to expose developed function to multiple users, who all can access it concurrently, but response should limit within 2.2 seconds.
    Any thoughts + guidance is higly appreciated.
    Thanks
    Preetam Singh

    Supporting data insert statements:
    =======================================================================================================================
    REM INSERTING into EXPERTISE
    Insert into EXPERTISE (USH_USER_NAME,USH_SKILL_SET1,USH_SKILL_SET2,USH_SKILL_SET3,USH_SKILL_SET4,USH_SKILL_SET5,USH_SKILL_SET6,USH_SKILL_SET7,USH_SKILL_SET8,USH_SKILL_SET9,USH_SKILL_SET10,USH_SKILL_SET11,USH_SKILL_SET12,USH_SKILL_SET13,USH_SKILL_SET14,USH_SKILL_SET15,USH_SKILL_SET16,USH_SKILL_SET17,USH_SKILL_SET18,USH_SKILL_SET19,USH_SKILL_SET20) values ('A','ENGLISH','FRENCH','HINDI',null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null);
    Insert into EXPERTISE (USH_USER_NAME,USH_SKILL_SET1,USH_SKILL_SET2,USH_SKILL_SET3,USH_SKILL_SET4,USH_SKILL_SET5,USH_SKILL_SET6,USH_SKILL_SET7,USH_SKILL_SET8,USH_SKILL_SET9,USH_SKILL_SET10,USH_SKILL_SET11,USH_SKILL_SET12,USH_SKILL_SET13,USH_SKILL_SET14,USH_SKILL_SET15,USH_SKILL_SET16,USH_SKILL_SET17,USH_SKILL_SET18,USH_SKILL_SET19,USH_SKILL_SET20) values ('B',null,'GERMAN','CHINIESE','HINDI',null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null);
    Insert into EXPERTISE (USH_USER_NAME,USH_SKILL_SET1,USH_SKILL_SET2,USH_SKILL_SET3,USH_SKILL_SET4,USH_SKILL_SET5,USH_SKILL_SET6,USH_SKILL_SET7,USH_SKILL_SET8,USH_SKILL_SET9,USH_SKILL_SET10,USH_SKILL_SET11,USH_SKILL_SET12,USH_SKILL_SET13,USH_SKILL_SET14,USH_SKILL_SET15,USH_SKILL_SET16,USH_SKILL_SET17,USH_SKILL_SET18,USH_SKILL_SET19,USH_SKILL_SET20) values ('C','ENGLISH',null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null);
    =======================================================================================================================
    ==================================================================
    REM INSERTING into WORKING
    Insert into WORKING (NAME,WEEKDAY,DAYSTARTTIME,DAYENDTIME) values ('A','MON','09:00','18:00');
    Insert into WORKING (NAME,WEEKDAY,DAYSTARTTIME,DAYENDTIME) values ('A','TUE','09:00','18:00');
    Insert into WORKING (NAME,WEEKDAY,DAYSTARTTIME,DAYENDTIME) values ('A','WED',null,null);
    Insert into WORKING (NAME,WEEKDAY,DAYSTARTTIME,DAYENDTIME) values ('A','THU','09:00','18:00');
    Insert into WORKING (NAME,WEEKDAY,DAYSTARTTIME,DAYENDTIME) values ('A','FRI','09:00','12:00');
    Insert into WORKING (NAME,WEEKDAY,DAYSTARTTIME,DAYENDTIME) values ('B','MON','09:00','18:00');
    Insert into WORKING (NAME,WEEKDAY,DAYSTARTTIME,DAYENDTIME) values ('B','TUE','09:00','18:00');
    Insert into WORKING (NAME,WEEKDAY,DAYSTARTTIME,DAYENDTIME) values ('B','WED','09:00','18:00');
    Insert into WORKING (NAME,WEEKDAY,DAYSTARTTIME,DAYENDTIME) values ('B','THU','09:00','18:00');
    Insert into WORKING (NAME,WEEKDAY,DAYSTARTTIME,DAYENDTIME) values ('B','FRI','09:00','18:00');
    Insert into WORKING (NAME,WEEKDAY,DAYSTARTTIME,DAYENDTIME) values ('C','MON',null,null);
    Insert into WORKING (NAME,WEEKDAY,DAYSTARTTIME,DAYENDTIME) values ('C','TUE','09:00','18:00');
    Insert into WORKING (NAME,WEEKDAY,DAYSTARTTIME,DAYENDTIME) values ('C','WED','09:00','18:00');
    Insert into WORKING (NAME,WEEKDAY,DAYSTARTTIME,DAYENDTIME) values ('C','THU','09:00','18:00');
    Insert into WORKING (NAME,WEEKDAY,DAYSTARTTIME,DAYENDTIME) values ('C','FRI','09:00','12:00');
    ==================================================================
    =====================================================================================================================
    REM INSERTING into SCHEDULE
    Insert into SCHEDULE (APPOINTMENTDATE,APPOINTMENTSTART,APPOINTMENTEND,STATUS,NAME) values (to_timestamp('11-FEB-12 10.00.00.000000000 AM','DD-MON-RR HH.MI.SS.FF AM'),to_timestamp('11-FEB-12 10.00.00.000000000 AM','DD-MON-RR HH.MI.SS.FF AM'),to_timestamp('11-FEB-12 11.00.00.000000000 AM','DD-MON-RR HH.MI.SS.FF AM'),'MEETING','A');
    Insert into SCHEDULE (APPOINTMENTDATE,APPOINTMENTSTART,APPOINTMENTEND,STATUS,NAME) values (to_timestamp('11-FEB-12 10.00.00.000000000 AM','DD-MON-RR HH.MI.SS.FF AM'),to_timestamp('11-FEB-12 10.00.00.000000000 AM','DD-MON-RR HH.MI.SS.FF AM'),to_timestamp('11-FEB-12 11.00.00.000000000 AM','DD-MON-RR HH.MI.SS.FF AM'),'TRAINING','B');
    Insert into SCHEDULE (APPOINTMENTDATE,APPOINTMENTSTART,APPOINTMENTEND,STATUS,NAME) values (to_timestamp('13-FEB-12 10.00.00.000000000 AM','DD-MON-RR HH.MI.SS.FF AM'),to_timestamp('11-FEB-12 10.00.00.000000000 AM','DD-MON-RR HH.MI.SS.FF AM'),to_timestamp('11-FEB-12 11.00.00.000000000 AM','DD-MON-RR HH.MI.SS.FF AM'),'MEETING','A');
    Insert into SCHEDULE (APPOINTMENTDATE,APPOINTMENTSTART,APPOINTMENTEND,STATUS,NAME) values (to_timestamp('11-FEB-12 10.00.00.000000000 AM','DD-MON-RR HH.MI.SS.FF AM'),to_timestamp('11-FEB-12 11.00.00.000000000 AM','DD-MON-RR HH.MI.SS.FF AM'),to_timestamp('11-FEB-12 11.30.00.000000000 AM','DD-MON-RR HH.MI.SS.FF AM'),'MEETING','B');
    =====================================================================================================================
    Edited by: 910614 on Feb 10, 2012 9:29 AM

  • Question regarding functional​ity of "Sear​ch 1D Array Function&q​uot; in TCP/IP context

    In the attached tcp_Registry.vi, the vi uses the "Search 1D Array Function".  I can't figure out why this function can't find the index of the input element, since the inputs to the function match...
    Solved!
    Go to Solution.
    Attachments:
    tcpInstrument.llb ‏238 KB
    tcp_registry_error_2Jun09.zip ‏435 KB

    I was a bit surprised this morning by the fact that the Initialize vi worked, so I decided, "What the heck?" I'll try the "LCLSA Wave Save To File.vi" again, as I haven't been able to get this one working without errors for the past few months.  And, magically, it worked!  I didn't believe it, so I ran it again - and it worked again!  I still didn't think this was true, so I ran a slightly modified vi I made, "LCLSA Wave Save To File_looped.vi", which just repeats the vi for multiple iterations to create multiple data files.  And this worked, too!  I have NO idea why today everything seems to be fine - I've seriously had issues with the stuff for at least 3 months.  However, I'm just going to go with the flow and see if I can now implement this stuff in my own application now and will let you know how that goes.
    A quick question - do you have any suggestions as to how to view the data files properly?  I believe they come out as binary, but look like mumbo-jumbo when viewed in a text editor like WordPad.  Thanks!
    Attachments:
    3Jun09 Files.zip ‏2 KB

  • Implace Array Functions

    Is there or can anyone provide me with a document that lists each array function and whether it executes implace or not implace? I know about the ini setting to show implaceness dots but I was wondering if there is a centralized document or list or maybe a website. Any info would be appreciated.
    BJD1613
    Lead Test Tools Development Engineer
    Philips Respironics
    Certified LV Architect / Instructor

    Hello,
    I have been looking around for a simple list that shows clearly which array functions will allocate a new buffer in memory. Unfortunately, the answer is not as cut-and-dry as that. For a good reference concerning memory allocation caused by using arrays and their functions, there is a very good knowledge base already written that you may like to take a look at. It has a zip file attached that contains four VIs that illustrate different memory issues. It also has links to other sites that give more general information about when LabVIEW has to create new buffers and provide attached tools to monitor memory allocation in your VIs. I hope that this helps. Here is the main link (knowledge base 36PF8BHV). It can also be found by going to our web pa
    ge, www.ni.com/support.
    http://ae.natinst.com/operations/ae/public.nsf/fca7838c4500dc10862567a100753500/e8a0389569877b1186256e46007a616e?OpenDocument
    I'm sorry that I was not able to find you exactly what you wanted. I hope that this at least helps. Take care and have a great day!
    Aaron B.
    National Instruments

  • Is there any way to create a circular buffer using the INSERT ARRAY function?

    I saw the example using the REPLACE ARRAY function, but it uses too much CPU power on my laptop. I'm using it for a very sensitive application and saw that the INSERT ARRAY function used much less CPU power.
    I am also not wiring the index on the INSERT ARRAY function so that whatever is read from the buffer is added to the array.
    However, since it is not indexed, I don't know how to set the "write" index back to 0 when it reaches a certain sized array (ie 1000 elements). I was looking for an array property node, but couldn't figure out if one exists for the "current write index".
    Can anyone help?
    Thanks

    I will try to answer this question to my best understanding. I apologize if I interpreted the question wrong.
    You are using the "Insert Array" vi without wiring the index. By doing that, new elements will be added (appended) to the array.
    If you just want to know the current index to stop your acquisition when the array reach certain amount of elements, then you can use the "Array Size" vi to keep track of the size of the growing array. Remember that Array Size = last index + 1 because the index start at zero.
    A second option is that you may want to start over the array when it hits the maximum number of elements that you will allow. If that's the case, then you may want to re-initialize the array to a NULL state by stablishing a condition (for example, when the
    size of the array is 1000, re-initialize). I provided an example attached to this message showing how this can be accomplished. In the example, an 1D array grows in size using the "Insert Array" vi and inserting a random number. When the array reach 4 elements, it is re-initialized. You can expand this example by saving the array first to a file or some other holder before re-initializing the array. The example is in LabVIEW 6.
    Finally, if you want to replace the current values with new values, I think you do not have other choice but to use the "Replace Array" vi.
    Hope this can be of help.
    Regards;
    Enrique Vargas
    www.vartortech.com
    Attachments:
    array_example.vi ‏20 KB

  • How to change the elements number in Number To Boolean Array Function VI

    Hi, I'm working on using the DAQ digital output to control the digital input of a DAC, and I used the Number To Boolean Array Function. VI to convert the number to a Boolean array. The maximum number should be 4096, therefore it should consist of 12 elements.
    For the description of the VI, it says Boolean array returns an array of 8, 16, 32, or 64 elements, depending on the number of bits in the integer. Therefore, I change the number of the channels in task to 16, but it still doesn't work. Any suggesitions are greatly appreciated.
    Thanks!
    Possible reason(s):
    Write cannot be performed, because the number of channels in the data does not match the number of channels in the task.
    When writing, supply data for all channels in the task. Alternatively, modify the task to contain the same number of channels as the data written.
    Number of Channels in Task: 12
    Number of Channels in Data&colon; 32
    Task Name: _unnamedTask<1B>
    Solved!
    Go to Solution.
    Attachments:
    DAC test.vi ‏47 KB

    Once you have the boolean array, you can resize it using array tools. For example you can use "reshape array" with a lenght of 12 to trim the array to 12 booleans elements (you can also use array subset).
    LabVIEW Champion . Do more with less code and in less time .

  • Unexpected behavior of spreadsheet string to array function

    Hello,
    I found some weirdness in LabVIEW 2011 that I do not understand. In the attached vi, I provide a one-dimensional spreadsheet string separated by spaces. I use the spreadsheet string to array function to convert this spreadsheet string into an array of strings.
    I ran into problems when I wanted to specify a space character as the delimiter.
    The conversion works as intended, if I do not specify a delimiter (i.e., the default tab delimiter is used). But if I specify the delimiter, only the first element of the spreadsheet string is converted. I do not understand this behavior.
    Thanks for your help.
    Peter
    Solved!
    Go to Solution.
    Attachments:
    Test spreadsheet string to array.vi ‏9 KB

    You don't have spaces in your string. You have tabs and of course the default delimiter works. Right click and select '\' Codes Display and see the \t.

  • How to avoid Build Array function inside a For (while) Loop?

    Hi there,
    I have a simple question about how to avoid using Build Array function inside the loop. Now I want to remove the Build Array funtion inside the loop to improve the performance (To get better memory management). Any idea how to do that?
    Thanks a lot!
    Warmest regards,
    Chong

    It's been my experience that using the auto-indexing to build an array
    on a For loop is just as good as initializing and replacing elements.
    The For loop knows before it runs how many iterations it has to run and
    can allocate the array ahead of time.
    You're better off initializing and replacing when using a While loop
    because it does not know how many iterations it will run and can't
    pre-allocate the array ahead of time.
    Ed
    Ed Dickens - Certified LabVIEW Architect - DISTek Integration, Inc. - NI Certified Alliance Partner
    Using the Abort button to stop your VI is like using a tree to stop your car. It works, but there may be consequences.

  • How can I perform the LINEST function using the new version of Numbers? The old method of using "command enter" to complete the array function does not work. Please help ASAP!!!

    LINEST function using Numbers for Mac

    Thank you for your help. This page is somewhat helpful, but I still don't quite understand.  I am using the Numbers program, and my assignment calls for me to use the LINEST function to return a set of 10 values. 
    When I googled how to do this, a lot of pages mentioned hitting "command+enter" to complete the array function, but they were using an older version of Numbers and it doesn't do anything when I try it in the new version.  I tried using "Index" with LINEST, and i've managed to get about 5 values out of it.

  • Insert into array function

    Hello,
    How can I add an element to a specific location of an array (row 3 and column 4 for example)?  I can only wire one index input into Insert Into Array function.  
    Thanks 

    If you're trying to replace an existing element, then you should use Replace Array Subset, not Insert Into Array.
    You cannot insert a single element into a 2-D array, because LabVIEW doesn't know how to shift the rest of the array to account for the gap that would appear if you were to do that. If you actually want to insert (and not replace), into a 2D array, then you need to insert an entire row or column, not a single element.

  • Array functions on non-double numbers

    Hey everyone,
    Sorry for another newbie question, coming from Labview has spoiled me  Is there a way to use the Array Operations functions on float numbers?  If not, can anyone recommend a Boost like library that is C based that will handle floats?
    Thanks,
    Austin

    I suppose you are referring to array functions from the Analysis library: unfrtunately those functions are limited to treat doubles only. I don't know of any alternative for floats or doubles: for the simpler of them you may want to create your own equivalent in a for loop; for more complex functions you can create a temporary array of doubles and use ConvertArrayType function to exchange data to and from it before and after calling the array function.
    Depending on other functions you are using into your application, you can consider promotinig all of your arrays to double and use them: PC are now plenty of memory to use and very fast CPU frequency so it could be a feasible solution.
    Proud to use LW/CVI from 3.1 on.
    My contributions to the Developer Zone Community
    If I have helped you, why not giving me a kudos?

  • Cascade two Build Array functions - what happens?

    I found the the code shown in the attachment in a very complex VI that I am overhauling.  Would someone explain to me what is happening with the "cascaded" Build Array functions.
    I can see that the first Build Array function builds a 1D array of integers which passes to the second Build Array function which outputs a 2D array of integers but, since there is no Element or second Array input, I don't see how this works.
    This is part of a subVI that is not embedded in a loop.
     All the examples have at least two inputs.  With one input there is no Concatenate Inputs option. There is some implicit operation here that I do not understand.
    Would someone explain how this works? 
    Solved!
    Go to Solution.
    Attachments:
    Cascade two build array functions.PNG ‏7 KB

    You are taking a scalar value and creating a 1-D array with exactly 1 element.
    Then you are taking the 1-D array and building it into a 2-D array, with exactly 1 element.
    Since you can't concatenate something with nothing, the only logical mode for the Build Array would be to build it into an array of the next larger dimension.
    You could add a third one, then you'd have a 3-D array with exactly 1 element.  And so on.

  • CSE/Array Functions

    Many of my spreadsheets rely on the array functions, sometimes referred to as CSE (Control-Shift-Enter) functions in Excel. A good example from one of my sheets would be:
    AVERAGE(IF(B2:B25=$F$3,H2:H25))
    Somewhat like an AVERAGEIF function if you will...
    I was quite disheartened to see all of my CSE functions not properly performing when opened in Numbers. Does anyone know of an alternate command in Numbers to get these to work? Or are CSE functions not supported at all?

    the java.util.Array and infact the Collections classes are only available since jdk1.2
    Browsers have built-in support only for jdk1.1 To use Java 2 classes in applets, the target machine must have the JRE plugin. You will also need to run your html file through HTMLConverter. This will direct the browser to use the plugin. Also, if the user does not have the plugin, it will prompt him to download it.

  • Assigning a variant string to a function pointer issue?

    Hello,
    This is a little complex for me to describe, so I will try my best to explain !
    I don't know if this is doable in C?
    Basically, I need a function pointer to hold the name of a function coming form a character array!
    From the examples I have seen, it seems that what I am trying to do is not the conventional way of doing function pointers, but I don't see any other way of doing what I need to do.
    In one instance, the function pointer in my code, will require to be assigned a function name like this:
    _g_BlkFuncs_ =_BUF_FUNC_PTR_ParseBlockStatus;
    and at other instances, the same function pointer needs to be assigned to a function called:
    _g_BlkFuncs_ =_INV_FUNC_PTR_ParseBlockStatus;
    and at other instances:
    _g_BlkFuncs_ =_AND_FUNC_PTR_ParseBlockStatus;
    or
    _g_BlkFuncs_ =_OR_FUNC_PTR_ParseBlockStatus;
    etc....
    The only time I will know which function to assign is when I will retrieve the first part of the function name from a table called
    _x_UserPrgBlock_. The first part being the name differentiator such as "_BUF_", "_INV_", "_AND_", "_OR_" and so forth which
    is initially stored in the one of the table members called m_LogicElement_ residing in the _x_UserPrgBlock_ table or struct.
    In the example below, I made it simple by hard coding the assigning of the m_LogicElement_ member as "_BUF_" (see the line commented as "Manual assignment line" below). In reality the  m_LogicElement_ member is assigned from
    a user defined string which will vary from time to time. 
    Here is the sample snippet which shows the issue.
    ================================STRUCT.h
    #ifndef STRUCT_H
    #define STRUCT_H
    typedef struct USR_PRG_CNV{ // User program converter table
    char m_LogicElement_[2][knst_BUF_LOGIC_ELEM]; // Name of the logic block
    } User_Prg_Block;
    #endif
    =================================_BUF.h
    #ifndef BUF_H
    #define BUF_H
    void _BUF_FUNC_PTR_ParseBlockStatus(void);
    #endif
    ================================_BUF.c
    void _BUF_FUNC_PTR_ParseBlockStatus(void){
    int i = 0;
    i = 10;
    ===============================UPC.h
    #ifndef UPC_H
    #define UPC_H
    void AssignmentFunc();
    #endif
    ===============================UPC.c
    User_Prg_Block _x_UserPrgBlock_[2];
    void AssignmentFunc(){
    strcpy(_x_UserPrgBlock_[0].m_LogicElement_, "_BUF_"); // Manual assignment line
    ===============================DFP.c
    #include "_BUF.h"
    void (*_g_BlkFuncs_) (void);
    char volatile _g_FuncPtrStrVariant_[35];
    void SomeFunction(){
    strcpy(_g_FuncPtrStrVariant_, _x_UserPrgBlock_[0].m_LogicElement_); // Get "_BUF_"
    strcat(_g_FuncPtrStrVariant_, "FUNC_PTR_ParseBlockStatus"); // Complete the function name
    // Now try to assign the full function name to the function pointer
    //_g_BlkFuncs_ = _BUF_FUNC_PTR_ParseBlockStatus;
    //_g_BlkFuncs_ = &_g_FuncPtrStrVariant_;
    _g_BlkFuncs_ = _g_FuncPtrStrVariant_; // ???
    ==============================Main.c
    void main(){
    AssignmentFunc();
    SomeFunction();
    In reference to the following line listed above:
    _g_BlkFuncs_ = _g_FuncPtrStrVariant_;
    I do realize that conventionally, it should be:
    _g_BlkFuncs_ =_BUF_FUNC_PTR_ParseBlockStatus;
    The problem I find myself faced with is that the function that "_g_BlkFuncs_" points to, has to vary in accordance to the name of the function stored in the _g_FuncPtrStrVariant_ character array! The reason is that the _g_FuncPtrStrVariant_
    array is actually built up to the name of the function based on the current contents of m_LogicElement_ residing in the _x_UserPrgBlock_ table.
    I think!!!!! that even if I use an array of function pointers, it won't solve the issue.
    In summary, in C, is there a way to assign a name of a function built from a character array to a function pointer?
    All help sincerely appreciated!
    Thanks

    I am interpreting your question a little different than Brian.
    If I understand you correctly you are asking:  "Given the name of a function as a string, how do I get a pointer to that function".
    The unfortunately fact is that C++ does not support reflection, so getting a function by name is not possible.  By the time the linker has done its thing, the function name has been stripped from code.
    This means if you need to support string lookup of a function name you need to support an alternate mechanism to handle this.  If you were using C++, a map would be an ideal mechanism.  C can still do this, but the mechanism is a lot uglier
    due to the lack of data structures like std::string and std::map.

Maybe you are looking for